


// pages/me/me.js
Page({

  /**
   * 页面的初始数据
   */
  data: {
    name:'点击登录',
    avatar:'cloud://cloud1-7gzpav0we92f7a2f.636c-cloud1-7gzpav0we92f7a2f-1307772278/微信图片_20190927135243.jpg',
    isLogin:false
  },
  /** 点击头像 */
  tapAvatar(){
    if(!this.data.isLogin) return;   //未登录不让选
    //选择图片
    wx.chooseImage({
      count: 1
    }).then(chooseRes=>{
      console.log(chooseRes)
      //获取选中的图片的路径
      let path = chooseRes.tempFilePaths[0];
      this.setData({avatar:path})
      
      //cloudPath 通过当前文件名随机生成
      //filePath 本地文件路径
      let cloudPath =  'img' + Math.random() +
      path.substring(path.lastIndexOf('.'));
      // console.log(path)
      //将该图片上传到云存储空间  wx.clound.uploadFile 
      wx.cloud.uploadFile({
        cloudPath: cloudPath,
        filePath: path,
        success:(upLoadRes)=>{
          console.log(upLoadRes)
          
          let fileID = upLoadRes.fileID;
          //将fileID更新到数据库中 user.avatar中
          let db = wx.cloud.database();
          db.collection('users').where({
            _openid:getApp().globalData.openid
          }).update({
            data:{
              avatar:fileID
            }
          })
        },
        fail:(err)=>{
          console.log(err)
        }
      })
    })
  },
  /** 点击登录 */
  tapLogin(){
    if(this.data.isLogin) return;  //已经登录

    wx.getUserProfile({
      desc: '完善会员信息',
      success:(res)=>{
        this.data.isLogin = true;
        console.log(res)
        this.setData({
          name:res.userInfo.nickName,
          avatar:res.userInfo.avatarUrl
        })
        //调用云函数  sum
        wx.cloud.callFunction({
          name:'quickstartFunctions',
          data:{type:'getOpenId'}
        }).then(callFuncRes=>{
          console.log(callFuncRes)
          let openid = callFuncRes.result.openid;
          //将openid存入globalData
          getApp().globalData.openid = openid;

          //管理自己家数据库
          this.registAndLogin();
        })
      }
    })
  },
  /** 针对自己数据库执行注册与登录
   *  先通过openid判断数据库中是否已经注册过
   *  如果是，则直接获取数据。更新界面即可
   * 如果不是，则执行注册
   */
  registAndLogin(){
    //先通过openid检索数据库 执行登陆
    const db = wx.cloud.database();
    db.collection('users').where({
      _openid:getApp().globalData.openid
    }).get().then(queryRes=>{
      console.log(queryRes)
      if(queryRes.data.length != 0){   //有用户
        let user = queryRes.data[0];
        this.setData({
          name:user.name,
          avatar:user.avatar
        })
      }else{   //没有用户
        //实现注册业务 将用户信息存入云数据库users集合
        db.collection('users').add({
          data:{
            name:this.data.name,
            avatar:this.data.avatar
          }
        }).then(addRes=>{
          console.log(addRes)
        })
      }
    })

    
  },
  dbtapEvent(){   //双击了按钮
    console.log('双击了按钮')
  },
  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {

  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {

  }
})